package com.example.serviceadd;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

import com.example.serviceadd.service.Add;


public class ServiceAddActivity extends AppCompatActivity implements View.OnClickListener {


    private EditText num1;
    private EditText num2;
    private TextView num3;
    private Button count;
    private ServiceConnection scConnection;
    private Add.SimplService sBinder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_service_add);
        //找控件
        initViews();
        // ServiceConnection 接口来取得建立连接 与 连接意外丢失的回调。
        scConnection = new ServiceConnection() {
            // 断开连接
            @Override
            public void onServiceDisconnected(ComponentName name) {
                // TODO Auto-generated method stub

            }

            // 连接
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                // 获取sBinder对象,可以调用其中的方法
                sBinder = (Add.SimplService) service;
            }
        };
        /**
         * bindService有三个参数，
         * 第一个是用于区分 Service 的Intent 与 startService 中的 Intent 一致，
         * 第二个是实现了 ServiceConnection 接口的对象，
         * 最后一个是 flag 标志位。
         * 有两个flag，BIND_DEBUG_UNBIND 与 BIND_AUTO_CREATE，
         * 前者用于调试（详细内容可以查看javadoc 上面描述的很清楚），
         * 后者默认使用。
         * */
        bindService(new Intent(ServiceAddActivity.this, Add.class), scConnection, Context.BIND_AUTO_CREATE);
        count.setOnClickListener(this);

    }

    private void initViews() {
        num1 = (EditText) findViewById(R.id.num1);
        num2 = (EditText) findViewById(R.id.num2);
        num3 = (TextView) findViewById(R.id.num3);
        count = (Button) findViewById(R.id.log_cf);
    }

    @Override
    public void onClick(View v) {
        // 获取输入框的值
        String numa = num1.getText().toString();
        String numb = num2.getText().toString();
        // 将string转成int
        int add = sBinder.add(Integer.parseInt(numa), Integer.parseInt(numb));
        num3.setText(add + "");
    }
}
